package com.xyz.CalendarTest;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class Main {
    public static void main(String[] args) {
        /*
        // 获取当前时间:Calenda静态方法 getInstance 来获取日历对象
        Calendar c = Calendar.getInstance();
        // 日历对象 的 get 方法， 使用 Calendar 的枚举值作为参数，获取对应的日期各部分
        int y = c.get(Calendar.YEAR);
        // Calendar 对象获取到的月也是 0-11，所以要加1
        int m = 1 + c.get(Calendar.MONTH);
        // 获取日，从1 开始
        int d = c.get(Calendar.DAY_OF_MONTH);
        // 当前星期的第几天，按从星期天开始为1，所以按中国的表示，要 -1
        int w = c.get(Calendar.DAY_OF_WEEK);
        // 小时
        int hh = c.get(Calendar.HOUR_OF_DAY);
        // 分钟
        int mm = c.get(Calendar.MINUTE);
        // 秒
        int ss = c.get(Calendar.SECOND);
        // 毫秒
        int ms = c.get(Calendar.MILLISECOND);
        System.out.println(y + "-" + m + "-" + d + " " + w + " " + hh + ":" + mm + ":" + ss + "." + ms);
    */
        /*
        // 当前时间:
        Calendar c = Calendar.getInstance();
        // 清除所有:
        c.clear();
        // 设置2019年:
        c.set(Calendar.YEAR, 2019);
        // 设置9月:注意8表示9月:
        c.set(Calendar.MONTH, 8);
        // 设置2日:
        c.set(Calendar.DATE, 2);
        // 设置时间:
        c.set(Calendar.HOUR_OF_DAY, 21);
        c.set(Calendar.MINUTE, 22);
        c.set(Calendar.SECOND, 23);
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c.getTime()));
        // 2019-09-02 21:22:23

         */

        /*
        // 当前时间:
        Calendar c = Calendar.getInstance();
        // 清除所有:
        c.clear();
        // 设置为北京时区:
        c.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
        // 设置年月日时分秒:
        c.set(2019, 10 , 20, 8, 15, 0);
        // 显示时间:
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 为时间格式化对象设置指定的时区进行转化，将上海时区转换为纽约时区
        sdf.setTimeZone(TimeZone.getTimeZone("America/New_York"));
        System.out.println(sdf.format(c.getTime()));
        // 2019-11-19 19:15:00

         */

        // 当前时间:
        Calendar c = Calendar.getInstance();
        // 清除所有:
        c.clear();
        // 设置年月日时分秒:
        c.set(2019, 10 /* 11月 */, 20, 8, 15, 0);
        // 加5天并减去2小时:
        c.add(Calendar.DAY_OF_MONTH, 5);
        c.add(Calendar.HOUR_OF_DAY, -2);
        // 显示时间:
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d = c.getTime();
        System.out.println(sdf.format(d));
        // 2019-11-25 6:15:00
    }
}
